home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / c.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  3.9 KB  |  126 lines

  1. //Language: C 
  2. //Copyright (c) 1992-2002 Altium Limited            
  3. //All rights reserved.                              
  4. //http://www.dream-com.com                          
  5. //contact@dream-com.com                             
  6.  
  7. // states
  8. State=snormal,CaseSensitive
  9. State=sstring1
  10. State=sstring2
  11. State=scomment1
  12. State=scomment2
  13. State=sdirective
  14. // tokens
  15. Token=tnone
  16. Token=tstring
  17. Token=tcomment
  18. Token=tident
  19. Token=tinteger
  20. Token=tfloat
  21. Token=tresword
  22. Token=tassembler
  23. Token=turl
  24. Token=twhitespace
  25. Token=tdirective
  26. //delims
  27. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  28.  
  29. // reswords
  30. snormal  'auto'      snormal tresword
  31. snormal  'break'     snormal tresword
  32. snormal  'case'      snormal tresword
  33. snormal  'cdecl'     snormal tresword
  34. snormal  'char'      snormal tresword
  35. snormal  'const'     snormal tresword
  36. snormal  'continue'  snormal tresword
  37. snormal  'default'   snormal tresword
  38. snormal  'do'        snormal tresword
  39. snormal  'double'    snormal tresword
  40. snormal  'else'      snormal tresword
  41. snormal  'enum'      snormal tresword
  42. snormal  'extern'    snormal tresword
  43. snormal  'far'       snormal tresword
  44. snormal  'float'     snormal tresword
  45. snormal  'for'       snormal tresword
  46. snormal  'fortran'   snormal tresword
  47. snormal  'goto'      snormal tresword
  48. snormal  'huge'      snormal tresword
  49. snormal  'if'        snormal tresword
  50. snormal  'int'       snormal tresword
  51. snormal  'interrupt' snormal tresword
  52. snormal  'long'      snormal tresword
  53. snormal  'near'      snormal tresword
  54. snormal  'pascal'    snormal tresword
  55. snormal  'register'  snormal tresword
  56. snormal  'return'    snormal tresword
  57. snormal  'short'     snormal tresword
  58. snormal  'signed'    snormal tresword
  59. snormal  'sizeof'    snormal tresword
  60. snormal  'static'    snormal tresword
  61. snormal  'struct'    snormal tresword
  62. snormal  'switch'    snormal tresword
  63. snormal  'typedef'   snormal tresword
  64. snormal  'union'     snormal tresword
  65. snormal  'unsigned'  snormal tresword
  66. snormal  'void'      snormal tresword
  67. snormal  'volatile'  snormal tresword
  68. snormal  'while'     snormal tresword
  69.  
  70.  
  71. // numbers
  72.  
  73. snormal [0-9][0-9]*                            snormal  tinteger
  74. snormal 0X[0-9A-F]+                            snormal  tinteger
  75. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  76. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  77.  
  78. //idents
  79. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  80.  
  81. //white space
  82. snormal #32*                      snormal   twhitespace
  83.  
  84. //comments
  85. snormal   //                      scomment1 tcomment
  86. scomment1 [#1-#255]*              snormal   tcomment
  87. scomment1 $                       snormal   tcomment
  88.  
  89. snormal   /\*                     scomment2 tcomment
  90. scomment2 [^\*]*                  scomment2 tcomment
  91. scomment2 \*[^/]                  scomment2 tcomment
  92. scomment2  [\*]*/                 snormal   tcomment
  93.  
  94.  
  95. //strings
  96. snormal   \'                      sstring1   tstring
  97. sstring1   [^\']*                 sstring1   tstring
  98. sstring1   \'                     snormal   tstring
  99. sstring1   \'\'                   sstring1   tstring
  100. sstring1   \\                     sstring1   tstring
  101. sstring1   \\\'                   sstring1   tstring
  102. sstring1   $                      snormal   tstring
  103.  
  104. //strings
  105. snormal    \"                     sstring2   tstring
  106. sstring2   [^\"]*                 sstring2   tstring
  107. sstring2   \"                     snormal   tstring
  108. sstring2   \"\"                   sstring2   tstring
  109. sstring2   \\                     sstring2   tstring
  110. sstring2   \\\"                   sstring2   tstring
  111. sstring2   $                      snormal   tstring
  112.  
  113.  
  114. //directives
  115.  
  116. snormal  \#                       sdirective tdirective
  117. sdirective [#1-#255]*             snormal    tdirective
  118. sdirective $                      snormal    tdirective
  119.  
  120. // urls
  121. snormal   www\.[a-z_A-Z0-9@\-.]*   snormal turl
  122. snormal   mailto:[a-z_A-Z0-9@\-.]*   snormal turl
  123.  
  124.  
  125.  
  126.